home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODF & Cyberdog / ODFCyberLibrary / Sources / FWCyStrm.cpp < prev    next >
Encoding:
Text File  |  1996-04-22  |  1.1 KB  |  51 lines  |  [TEXT/MPS ]

  1. //-----------------------------------------------------------------------------
  2. // FWCyStrm.cpp
  3. // Cyberdog Stream Utilities
  4. //-----------------------------------------------------------------------------
  5.  
  6. #include "FWFrameW.hpp"
  7. #include "FWCyStrm.h"
  8. #include "CyberStream.xh"
  9.  
  10. const short FW_kCyberStreamDone = (kCDErrorOccurred | kCDDownloadComplete | kCDAbortComplete);
  11.  
  12. FW_DEFINE_AUTO (FW_CCyberStream)
  13.  
  14. void FW_CCyberStream::Assign (CyberStream* cs)
  15. {
  16.     Environment* ev = somGetGlobalEnvironment();
  17.     
  18.     if (fStream) {
  19.         // Is it deletable or must it be aborted?
  20.         short status = fStream->GetStreamStatus(ev);
  21.         if (!(status & FW_kCyberStreamDone)) {
  22.             fStream->Abort (ev);
  23.             do {
  24.                 ::SystemTask();
  25.                 status = fStream->GetStreamStatus(ev);
  26.             }
  27.             while (!(status & FW_kCyberStreamDone));
  28.         }
  29.         delete fStream;
  30.     }
  31.     
  32.     fStream = cs;
  33. }
  34.  
  35. FW_DEFINE_AUTO (FW_CCyberBuffer)
  36.  
  37. FW_CCyberBuffer::FW_CCyberBuffer (Environment* ev, CyberStream* cs)
  38. :    fStream (cs)
  39. {
  40.     FW_ASSERT (cs);
  41.     cs->GetBuffer (ev, &fBuffer, &fSize);
  42. }
  43.  
  44. FW_CCyberBuffer::~FW_CCyberBuffer ()
  45. {
  46.     Environment* ev = somGetGlobalEnvironment();
  47.     
  48.     fStream->ReleaseBuffer (ev, fBuffer);
  49. }
  50.  
  51.